/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package evaluacionpractica;

import java.util.Scanner;

/**
 *
 * @author labbd
 */
public class EvaluacionPractica {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        
        int nroEstudiantes;
        int nroEvaluaciones;
        int i,j,nota,porcentaje;
        String tema,nombre,apellido;
        Scanner reader = new Scanner(System.in);
        
        //leer nro estudiantes
        System.out.println("Ingrese el numero de estudiantes: ");
        nroEstudiantes=reader.nextInt();
        
        //leer nroEvaluaciones
        System.out.println("Ingrese el numero de evaluaciones: ");
        nroEvaluaciones=reader.nextInt();
        
        reader.nextLine();//limpiar buffer
        
        Estudiante estudiantes[]= new Estudiante[nroEstudiantes];
        PlanEvaluacion planEvaluacion = new PlanEvaluacion(nroEvaluaciones);
        
        System.out.println("Ingrese las evaluaciones: ");
        
        
        for(i=0;i<planEvaluacion.getNroEvaluaciones();i++){
            System.out.print("Tema "+i+": ");
            tema=reader.nextLine();
            System.out.print("Porcentaje "+i+": ");
            porcentaje = reader.nextInt();
            reader.nextLine();//limpiar buffer
            planEvaluacion.addEvaluacion(i, new Evaluacion(tema,porcentaje));
        }
        
        System.out.println("Ingrese los estudiantes: ");
        for(i=0;i<nroEstudiantes;i++){
            System.out.println("Estudiante "+i+":");
            System.out.print("Nombre: ");
            nombre=reader.nextLine();
            System.out.print("Apellido: ");
            apellido=reader.nextLine();
            
            //Aplicacion de polimorfismo en el constructor de Estudiante
            //El primero lo agrega con el constructor que solo recibe 1 int
            if(i==0){
                Estudiante estudiante = new Estudiante(planEvaluacion.getNroEvaluaciones());
                estudiante.setApellido(nombre);
                estudiante.setNombre(apellido);
                estudiantes[i]= estudiante;
            }else{
                //Los demas estudiantes se agregan con el otro constructor
            estudiantes[i]= new Estudiante(nombre,apellido,planEvaluacion.getNroEvaluaciones());
            }
        }
        
        for(j=0;j<planEvaluacion.getNroEvaluaciones();j++){
        System.out.println("Agregue la nota de la evaluacion "+j+" de: ");
            for(i=0;i<nroEstudiantes;i++){
                System.out.print(estudiantes[i].getNombre()+" "+estudiantes[i].getApellido()+": ");
                nota = reader.nextInt();
                reader.nextLine();//limpiar buffer
                estudiantes[i].addNotas(j, nota);
            }
        }
        
        System.out.println("Plan de evaluacion: ");
        for(j=0;j<planEvaluacion.getNroEvaluaciones();j++){
            System.out.println("Tema: "+planEvaluacion.getEvaluacion(j).getTema()+ " Porcentaje: "+planEvaluacion.getEvaluacion(j).getPorcentaje());
        }
        
        System.out.println(" ");
        
        System.out.println("Notas de estudiantes: ");
        for(j=0;j<nroEstudiantes;j++){
            float total=0;
            
            System.out.println(estudiantes[j].getNombre()+" "+estudiantes[j].getApellido()+": ");
            for(i=0;i<planEvaluacion.getNroEvaluaciones();i++){
                System.out.println("Nota en tema "+i+": "+estudiantes[j].getNota(i));
                total += ((float)planEvaluacion.getEvaluacion(i).getPorcentaje()/100)*(estudiantes[j].getNota(i));
            }
            System.out.println("Total: "+total);
        }
        
    }
}
